﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Web.Mvc;
using System.Web.Security;

namespace Tasker.WebUI.Models.Task
{
    public class TaskUserModel
    {
        public int Id { get; set; }
        public string FullName { get; set; }
        public string Position { get; set; }
    }

    public class TaskShowModel
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public DateTime CreatedDate { get; set; }
        public DateTime StartDate { get; set; }
        public DateTime FinishDate { get; set; }
        public string AuthorPosition { get; set; }
        public int StatusId { get; set; }
        public string Status { get; set; }
        public int AuthorId { get; set; }
        public string ParentTaskName { get; set; }
        public int ParentId { get; set; }
        public string AuthorFullName { get; set; }
        public string AuthorNick { get; set; }

        public IEnumerable<TaskUserModel> TaskWorkers { get; set; } 

    }

    public class TaskCreateModel
    {
        [Required(ErrorMessage = "Введите название задачи")]
        [Display(Name="Задача")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Введите описание задачи")]
        [Display(Name = "Суть задачи")]
        public string Description { get; set; }

        public DateTime CreatedDate { get; set; }

        [Display(Name = "Дата старта")]
        [DataType(DataType.DateTime, ErrorMessage = "Неверный формат даты")]
        public DateTime StartDate { get; set; }

        [Required(ErrorMessage = "Введите дату окончания")]
        [DataType(DataType.DateTime, ErrorMessage = "Неверный формат даты")]
        [Display(Name="Дата окончания")]
        public DateTime FinishDate { get; set; }

        public int EmployeeId { get; set; }

        public int TaskId { get; set; }

        public IEnumerable<TaskUserModel> Users { get; set; }
        public IEnumerable<Tuple<int, string>> Tasks { get; set; }

        public IEnumerable<TaskUserModel> TaskWorkers { get; set; } 
    }

    public class TaskEditModel
    {
        [Required(ErrorMessage = "Введите название задачи")]
        [Display(Name = "Задача")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Введите описание задачи")]
        [Display(Name = "Суть задачи")]
        public string Description { get; set; }

        public DateTime CreatedDate { get; set; }

        [Display(Name = "Дата старта")]
        [DataType(DataType.DateTime, ErrorMessage = "Неверный формат даты")]
        public DateTime StartDate { get; set; }

        [Required(ErrorMessage = "Введите дату окончания")]
        [DataType(DataType.DateTime, ErrorMessage = "Неверный формат даты")]
        [Display(Name = "Дата окончания")]
        public DateTime FinishDate { get; set; }

        public IEnumerable<TaskUserModel> Users { get; set; }
        public IEnumerable<Tuple<int, string>> Tasks { get; set; }

        public IEnumerable<TaskUserModel> TaskWorkers { get; set; } 
    }
}
